home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / assembler / progasm1.lha / SORGENTI2 / LEZIONE6c2.s < prev    next >
Text File  |  1994-07-10  |  15KB  |  763 lines

  1.  
  2. ; Lezione6c2.s    STAMPIAMO VARIE RIGHE DI TESTO SULLO SCHERMO!!!
  3. ;        - con font in binario MODIFICABILE FACILMENTE!!
  4.  
  5.     SECTION    CiriCop,CODE
  6.  
  7. Inizio:
  8.     move.l    4.w,a6        ; Execbase in a6
  9.     jsr    -$78(a6)    ; Disable - ferma il multitasking
  10.     lea    GfxName(PC),a1    ; Indirizzo del nome della lib da aprire in a1
  11.     jsr    -$198(a6)    ; OpenLibrary
  12.     move.l    d0,GfxBase    ; salvo l'indirizzo base GFX in GfxBase
  13.     move.l    d0,a6
  14.     move.l    $26(a6),OldCop    ; salviamo l'indirizzo della copperlist vecchia
  15.  
  16. ;     PUNTIAMO IL NOSTRO BITPLANE
  17.  
  18.     MOVE.L    #BITPLANE,d0    ; in d0 mettiamo l'indirizzo della PIC,
  19.     LEA    BPLPOINTERS,A1    ; puntatori nella COPPERLIST
  20.     move.w    d0,6(a1)    ; copia la word BASSA dell'indirizzo del plane
  21.     swap    d0        ; scambia le 2 word di d0 (es: 1234 > 3412)
  22.     move.w    d0,2(a1)    ; copia la word ALTA dell'indirizzo del plane
  23.  
  24.     move.l    #COPPERLIST,$dff080    ; Puntiamo la nostra COP
  25.     move.w    d0,$dff088        ; Facciamo partire la COP
  26.     move.w    #0,$dff1fc        ; Disattiva l'AGA
  27.     move.w    #$c00,$dff106        ; Disattiva l'AGA
  28.  
  29.     bsr.w    print        ; Stampa le linee di testo sullo schermo
  30.  
  31. mouse:
  32.     btst    #6,$bfe001    ; tasto sinistro del mouse premuto?
  33.     bne.s    mouse        ; se no, torna a mouse:
  34.  
  35.     move.l    OldCop(PC),$dff080    ; Puntiamo la cop di sistema
  36.     move.w    d0,$dff088        ; facciamo partire la vecchia cop
  37.  
  38.     move.l    4.w,a6
  39.     jsr    -$7e(a6)    ; Enable - riabilita il Multitasking
  40.     move.l    gfxbase(PC),a1    ; Base della libreria da chiudere
  41.     jsr    -$19e(a6)    ; Closelibrary - chiudo la graphics lib
  42.     rts            ; USCITA DAL PROGRAMMA
  43.  
  44. ;    Dati
  45.  
  46. GfxName:
  47.     dc.b    "graphics.library",0,0    
  48.  
  49. GfxBase:        ; Qua ci va l'indirizzo di base per gli Offset
  50.     dc.l    0    ; della graphics.library
  51.  
  52. OldCop:            ; Qua ci va l'indirizzo della vecchia COP di sistema
  53.     dc.l    0
  54.  
  55. ;    Routine che stampa caratteri larghi 8x8 pixel
  56.  
  57. PRINT:
  58.     LEA    TESTO(PC),A0    ; Indirizzo del testo da stampare in a0
  59.     LEA    BITPLANE,A3    ; Indirizzo del bitplane destinazione in a3
  60.     MOVEQ    #25-1,D3    ; NUMERO RIGHE DA STAMPARE: 25
  61. PRINTRIGA:
  62.     MOVEQ    #40-1,D0    ; NUMERO COLONNE PER RIGA: 40
  63. PRINTCHAR2:
  64.     MOVEQ    #0,D2        ; Pulisci d2
  65.     MOVE.B    (A0)+,D2    ; Prossimo carattere in d2
  66.     SUB.B    #$20,D2        ; TOGLI 32 AL VALORE ASCII DEL CARATTERE, IN
  67.                 ; MODO DA TRASFORMARE, AD ESEMPIO, QUELLO
  68.                 ; DELLO SPAZIO (che e' $20), in $00, quello
  69.                 ; DELL'ASTERISCO ($21), in $01...
  70.     MULU.W    #8,D2        ; MOLTIPLICA PER 8 IL NUMERO PRECEDENTE,
  71.                 ; essendo i caratteri alti 8 pixel
  72.     MOVE.L    D2,A2
  73.     ADD.L    #FONT,A2    ; TROVA IL CARATTERE DESIDERATO NEL FONT...
  74.  
  75.                 ; STAMPIAMO IL CARATTERE LINEA PER LINEA
  76.     MOVE.B    (A2)+,(A3)    ; stampa LA LINEA 1 del carattere
  77.     MOVE.B    (A2)+,40(A3)    ; stampa LA LINEA 2  " "
  78.     MOVE.B    (A2)+,40*2(A3)    ; stampa LA LINEA 3  " "
  79.     MOVE.B    (A2)+,40*3(A3)    ; stampa LA LINEA 4  " "
  80.     MOVE.B    (A2)+,40*4(A3)    ; stampa LA LINEA 5  " "
  81.     MOVE.B    (A2)+,40*5(A3)    ; stampa LA LINEA 6  " "
  82.     MOVE.B    (A2)+,40*6(A3)    ; stampa LA LINEA 7  " "
  83.     MOVE.B    (A2)+,40*7(A3)    ; stampa LA LINEA 8  " "
  84.  
  85.     ADDQ.w    #1,A3        ; A1+1, avanziamo di 8 bit (PROSSIMO CARATTERE)
  86.  
  87.     DBRA    D0,PRINTCHAR2    ; STAMPIAMO D0 (40) CARATTERI PER RIGA
  88.  
  89.     ADD.W    #40*7,A3    ; ANDIAMO A CAPO
  90.  
  91.     DBRA    D3,PRINTRIGA    ; FACCIAMO D3 RIGHE
  92.  
  93.     RTS
  94.  
  95. ;            CARATTERI DISPONIBILI NEL FONT:
  96. ;
  97. ;      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ
  98. ;
  99. ;        CARATTERI CHE NON SONO NEL FONT, DA NON USARE:
  100. ;
  101. ;               [\]^_`abcdefghijklmnopqrstuvwxyz{|}~
  102. ;
  103. ;
  104. ; NOTA: il carattere "@" stampa una faccia sorridente... perche' no?
  105.  
  106.         ; numero caratteri per linea: 40
  107. TESTO:                             ;40 caratteri
  108.     dc.b    "   PRIMA RIGA                           " ; 1
  109.     dc.b    "                SECONDA RIGA            " ; 2
  110.     dc.b    "  /  /                                  " ; 3
  111.     dc.b    " /  /  NON POSSO STAMPARE L'ALTRA BARRA!" ; 4
  112.     dc.b    "                                        " ; 5
  113.     dc.b    "        SESTA RIGA                      " ; 6
  114.     dc.b    "                                        " ; 7
  115.     dc.b    "                                        " ; 8
  116.     dc.b    "FABIO CIUCCI COMMUNICATION INTERNATIONAL" ; 9
  117.     dc.b    "                                        " ; 10
  118.     dc.b    "   ! #$%&'()*+,-./0123456789:;<=>? @    " ; 11
  119.     dc.b    "                                        " ; 12
  120.     dc.b    "     LA PALINGENETICA OBLITERAZIONE     " ; 15
  121.     dc.b    "                                        " ; 25
  122.     dc.b    "                                        " ; 16
  123.     dc.b    "  NEL MEZZO DEL CAMMIN DI NOSTRA VITA   " ; 17
  124.     dc.b    "                                        " ; 18
  125.     dc.b    "    MI RITROVAI PER UNA SELVA OSCURA    " ; 19
  126.     dc.b    "                                        " ; 20
  127.     dc.b    "    CHE LA DIRITTA VIA ERA SMARRITA     " ; 21
  128.     dc.b    "                                        " ; 22
  129.     dc.b    "  AHI QUANTO A DIR QUAL ERA...          " ; 23
  130.     dc.b    "                                        " ; 24
  131.     dc.b    "       @ @ @ SOLO MAIUSCOLE @ @ @       " ; 25
  132.     dc.b    "                                        " ; 26
  133.     dc.b    "                                        " ; 27
  134.  
  135.     EVEN
  136.  
  137.     SECTION    GRAPHIC,DATA_C
  138.  
  139. COPPERLIST:
  140.     dc.w    $120,$0000,$122,$0000,$124,$0000,$126,$0000,$128,$0000 ; SPRITE
  141.     dc.w    $12a,$0000,$12c,$0000,$12e,$0000,$130,$0000,$132,$0000
  142.     dc.w    $134,$0000,$136,$0000,$138,$0000,$13a,$0000,$13c,$0000
  143.     dc.w    $13e,$0000
  144.  
  145.     dc.w    $8E,$2c81    ; DiwStrt
  146.     dc.w    $90,$2cc1    ; DiwStop
  147.     dc.w    $92,$0038    ; DdfStart
  148.     dc.w    $94,$00d0    ; DdfStop
  149.     dc.w    $102,0        ; BplCon1
  150.     dc.w    $104,0        ; BplCon2
  151.     dc.w    $108,0        ; Bpl1Mod
  152.     dc.w    $10a,0        ; Bpl2Mod
  153.             ; 5432109876543210
  154.     dc.w    $100,%0001001000000000    ; 1 bitplane LOWRES 320x256
  155.  
  156. BPLPOINTERS:
  157.     dc.w $e0,$0000,$e2,$0000    ;primo     bitplane
  158.  
  159.     dc.w    $0180,$345    ; color0 - SFONDO
  160.     dc.w    $0182,$bdf    ; color1 - SCRITTE
  161.  
  162.     dc.w    $FFFF,$FFFE    ; Fine della copperlist
  163.  
  164. ;    Il FONT caratteri 8x8
  165.  
  166. ;    caratteri:  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ
  167. ;    ATTENZIONE! non ci sono: [\]^_`abcdefghijklmnopqrstuvwxyz{|}~
  168.  
  169. ; CONSIGLIO: Per scorrere in basso usate il cursore giu' + SHIFT e fate una
  170. ; pagina alla volta!!!
  171.  
  172. FONT:
  173. ; ' '
  174.     dc.b    %00000000
  175.     dc.b    %00000000
  176.     dc.b    %00000000
  177.     dc.b    %00000000
  178.     dc.b    %00000000
  179.     dc.b    %00000000
  180.     dc.b    %00000000
  181.     dc.b    %00000000
  182. ; '!'
  183.     dc.b    %00011000
  184.     dc.b    %00011000
  185.     dc.b    %00011000
  186.     dc.b    %00011000
  187.     dc.b    %00011000
  188.     dc.b    %00000000
  189.     dc.b    %00011000
  190.     dc.b    %00000000
  191. ; '"'
  192.     dc.b    %00011011
  193.     dc.b    %00011011
  194.     dc.b    %00011011
  195.     dc.b    %00000000
  196.     dc.b    %00000000
  197.     dc.b    %00000000
  198.     dc.b    %00000000
  199.     dc.b    %00000000
  200. ; '#'
  201.     dc.b    %00010100
  202.     dc.b    %00010100
  203.     dc.b    %00010100
  204.     dc.b    %01111111
  205.     dc.b    %00010100
  206.     dc.b    %00010100
  207.     dc.b    %00010100
  208.     dc.b    %00000000
  209. ; '$'
  210.     dc.b    %00001000
  211.     dc.b    %00011110
  212.     dc.b    %00100000
  213.     dc.b    %00011100
  214.     dc.b    %00000010
  215.     dc.b    %00111100
  216.     dc.b    %00001000
  217.     dc.b    %00000000
  218. ; '%'
  219.     dc.b    %00000001
  220.     dc.b    %00110011
  221.     dc.b    %00110110
  222.     dc.b    %00001100
  223.     dc.b    %00011000
  224.     dc.b    %00110110
  225.     dc.b    %01100110
  226.     dc.b    %00000000
  227. ; '&'
  228.     dc.b    %00011000
  229.     dc.b    %00100100
  230.     dc.b    %00011000
  231.     dc.b    %00011001
  232.     dc.b    %00100110
  233.     dc.b    %00111110
  234.     dc.b    %00011001
  235.     dc.b    %00000000
  236. ; "'"
  237.     dc.b    %00001100
  238.     dc.b    %00001100
  239.     dc.b    %00001100
  240.     dc.b    %00000000
  241.     dc.b    %00000000
  242.     dc.b    %00000000
  243.     dc.b    %00000000
  244.     dc.b    %00000000
  245. ; "("
  246.     dc.b    %00001100
  247.     dc.b    %00011000
  248.     dc.b    %00110000
  249.     dc.b    %00110000
  250.     dc.b    %00110000
  251.     dc.b    %00011000
  252.     dc.b    %00001100
  253.     dc.b    %00000000
  254. ; ")"
  255.     dc.b    %00110000
  256.     dc.b    %00011000
  257.     dc.b    %00001100
  258.     dc.b    %00001100
  259.     dc.b    %00001100
  260.     dc.b    %00011000
  261.     dc.b    %00110000
  262.     dc.b    %00000000
  263. ; "*"
  264.     dc.b    %01100011
  265.     dc.b    %00110110
  266.     dc.b    %00011100
  267.     dc.b    %01111111
  268.     dc.b    %00011100
  269.     dc.b    %00110110
  270.     dc.b    %01100011
  271.     dc.b    %00000000
  272. ; '+'
  273.     dc.b    %00000000
  274.     dc.b    %00011000
  275.     dc.b    %00011000
  276.     dc.b    %01111110
  277.     dc.b    %00011000
  278.     dc.b    %00011000
  279.     dc.b    %00000000
  280.     dc.b    %00000000
  281. ; ","
  282.     dc.b    %00000000
  283.     dc.b    %00000000
  284.     dc.b    %00000000
  285.     dc.b    %00000000
  286.     dc.b    %00011000
  287.     dc.b    %00011000
  288.     dc.b    %00110000
  289.     dc.b    %00000000
  290. ; "-"
  291.     dc.b    %00000000
  292.     dc.b    %00000000
  293.     dc.b    %00000000
  294.     dc.b    %01111110
  295.     dc.b    %00000000
  296.     dc.b    %00000000
  297.     dc.b    %00000000
  298.     dc.b    %00000000
  299. ; "."
  300.     dc.b    %00000000
  301.     dc.b    %00000000
  302.     dc.b    %00000000
  303.     dc.b    %00000000
  304.     dc.b    %00000000
  305.     dc.b    %00011000
  306.     dc.b    %00011000
  307.     dc.b    %00000000
  308. ; "/"
  309.     dc.b    %00000001
  310.     dc.b    %00000011
  311.     dc.b    %00000110
  312.     dc.b    %00001100
  313.     dc.b    %00011000
  314.     dc.b    %00110000
  315.     dc.b    %01100000
  316.     dc.b    %00000000
  317. ; '0'
  318.     dc.b    %01111111
  319.     dc.b    %01100011
  320.     dc.b    %01100011
  321.     dc.b    %00000000
  322.     dc.b    %01100011
  323.     dc.b    %01100011
  324.     dc.b    %01111111
  325.     dc.b    %00000000
  326. ; '1'
  327.     dc.b    %00000011
  328.     dc.b    %00000011
  329.     dc.b    %00000011
  330.     dc.b    %00000000
  331.     dc.b    %00000011
  332.     dc.b    %00000011
  333.     dc.b    %00000011
  334.     dc.b    %00000000
  335. ; '2'
  336.     dc.b    %01111111
  337.     dc.b    %00000000
  338.     dc.b    %00000011
  339.     dc.b    %01111111
  340.     dc.b    %01100000
  341.     dc.b    %01100000
  342.     dc.b    %01111111
  343.     dc.b    %00000000
  344. ; '3'
  345.     dc.b    %01111111
  346.     dc.b    %00000000
  347.     dc.b    %00000011
  348.     dc.b    %00011111
  349.     dc.b    %00000011
  350.     dc.b    %00000011
  351.     dc.b    %01111111
  352.     dc.b    %00000000
  353. ; '4'
  354.     dc.b    %01100011
  355.     dc.b    %01100011
  356.     dc.b    %01100000
  357.     dc.b    %01111111
  358.     dc.b    %00000011
  359.     dc.b    %00000011
  360.     dc.b    %00000011
  361.     dc.b    %00000000
  362. ; '5'
  363.     dc.b    %01111111
  364.     dc.b    %00000000
  365.     dc.b    %01100000
  366.     dc.b    %01111111
  367.     dc.b    %00000011
  368.     dc.b    %00000011
  369.     dc.b    %01111111
  370.     dc.b    %00000000
  371. ; '6'
  372.     dc.b    %01111111
  373.     dc.b    %00000000
  374.     dc.b    %01100000
  375.     dc.b    %01111111
  376.     dc.b    %01100011
  377.     dc.b    %01100011
  378.     dc.b    %01111111
  379.     dc.b    %00000000
  380. ; '7'
  381.     dc.b    %01111111
  382.     dc.b    %00000000
  383.     dc.b    %00000011
  384.     dc.b    %00000011
  385.     dc.b    %00000011
  386.     dc.b    %00000011
  387.     dc.b    %00000011
  388.     dc.b    %00000000
  389. ; '8'
  390.     dc.b    %01111111
  391.     dc.b    %00000011
  392.     dc.b    %01100011
  393.     dc.b    %01111111
  394.     dc.b    %01100011
  395.     dc.b    %01100011
  396.     dc.b    %01111111
  397.     dc.b    %00000000
  398. ; '9'
  399.     dc.b    %01111111
  400.     dc.b    %00000011
  401.     dc.b    %01100011
  402.     dc.b    %01111111
  403.     dc.b    %00000011
  404.     dc.b    %00000011
  405.     dc.b    %01111111
  406.     dc.b    %00000000
  407. ; ':'
  408.     dc.b    %00000000
  409.     dc.b    %00001100
  410.     dc.b    %00001100
  411.     dc.b    %00000000
  412.     dc.b    %00000000
  413.     dc.b    %00001100
  414.     dc.b    %00001100
  415.     dc.b    %00000000
  416. ; ';'
  417.     dc.b    %00000000
  418.     dc.b    %00001100
  419.     dc.b    %00001100
  420.     dc.b    %00000000
  421.     dc.b    %00001100
  422.     dc.b    %00001100
  423.     dc.b    %00011000
  424.     dc.b    %00000000
  425. ; "<"
  426.     dc.b    %00000110
  427.     dc.b    %00001100
  428.     dc.b    %00011000
  429.     dc.b    %00110000
  430.     dc.b    %00011000
  431.     dc.b    %00001100
  432.     dc.b    %00000110
  433.     dc.b    %00000000
  434. ; "="
  435.     dc.b    %00000000
  436.     dc.b    %00000000
  437.     dc.b    %01111110
  438.     dc.b    %00000000
  439.     dc.b    %01111110
  440.     dc.b    %00000000
  441.     dc.b    %00000000
  442.     dc.b    %00000000
  443. ; ">"
  444.     dc.b    %00011000
  445.     dc.b    %00001100
  446.     dc.b    %00000110
  447.     dc.b    %00000011
  448.     dc.b    %00000110
  449.     dc.b    %00001100
  450.     dc.b    %00110000
  451.     dc.b    %00000000
  452. ; '?'
  453.     dc.b    %01111111
  454.     dc.b    %00000000
  455.     dc.b    %00000011
  456.     dc.b    %00001111
  457.     dc.b    %00001100
  458.     dc.b    %00000000
  459.     dc.b    %00001100
  460.     dc.b    %00000000
  461. ; "@"
  462.     dc.b    %00000000    ; sorriso
  463.     dc.b    %11100111
  464.     dc.b    %11100111
  465.     dc.b    %00000000
  466.     dc.b    %00010000
  467.     dc.b    %00011000
  468.     dc.b    %10000001
  469.     dc.b    %01111110
  470. ; "A"
  471.     dc.b    %01111111
  472.     dc.b    %00000011
  473.     dc.b    %01100011
  474.     dc.b    %01111111
  475.     dc.b    %01100011
  476.     dc.b    %01100011
  477.     dc.b    %01100011
  478.     dc.b    %00000000
  479. ; "B"
  480.     dc.b    %01111110
  481.     dc.b    %00000011
  482.     dc.b    %01100011
  483.     dc.b    %01111110
  484.     dc.b    %01100011
  485.     dc.b    %01100011
  486.     dc.b    %01111110
  487.     dc.b    %00000000
  488. ; 'C'
  489.     dc.b    %01111111
  490.     dc.b    %00000000
  491.     dc.b    %01100000
  492.     dc.b    %01100000
  493.     dc.b    %01100000
  494.     dc.b    %01100000
  495.     dc.b    %01111111
  496.     dc.b    %00000000
  497. ; 'D'
  498.     dc.b    %01111110
  499.     dc.b    %00000011
  500.     dc.b    %01100011
  501.     dc.b    %01100011
  502.     dc.b    %01100011
  503.     dc.b    %01100011
  504.     dc.b    %01111110
  505.     dc.b    %00000000
  506. ; 'E'
  507.     dc.b    %01111111
  508.     dc.b    %00000000
  509.     dc.b    %01100000
  510.     dc.b    %01111100
  511.     dc.b    %01100000
  512.     dc.b    %01100000
  513.     dc.b    %01111111
  514.     dc.b    %00000000
  515. ; 'F'
  516.     dc.b    %01111111
  517.     dc.b    %00000000
  518.     dc.b    %01100000
  519.     dc.b    %01111100
  520.     dc.b    %01100000
  521.     dc.b    %01100000
  522.     dc.b    %01100000
  523.     dc.b    %00000000
  524. ; 'G'
  525.     dc.b    %01111111
  526.     dc.b    %00000000
  527.     dc.b    %01100000
  528.     dc.b    %01100111
  529.     dc.b    %01100011
  530.     dc.b    %01100011
  531.     dc.b    %01111111
  532.     dc.b    %00000000
  533. ; 'H'
  534.     dc.b    %01100011
  535.     dc.b    %01100011
  536.     dc.b    %01100011
  537.     dc.b    %01101111
  538.     dc.b    %01100011
  539.     dc.b    %01100011
  540.     dc.b    %01100011
  541.     dc.b    %00000000
  542. ; 'I'
  543.     dc.b    %00111111
  544.     dc.b    %00000000
  545.     dc.b    %00001100
  546.     dc.b    %00001100
  547.     dc.b    %00001100
  548.     dc.b    %00001100
  549.     dc.b    %00111111
  550.     dc.b    %00000000
  551. ; 'J'
  552.     dc.b    %00000011
  553.     dc.b    %00000011
  554.     dc.b    %00000011
  555.     dc.b    %00000011
  556.     dc.b    %01100011
  557.     dc.b    %01100000
  558.     dc.b    %01111111
  559.     dc.b    %00000000
  560. ; 'K'
  561.     dc.b    %01100011
  562.     dc.b    %01100110
  563.     dc.b    %00001100
  564.     dc.b    %01111000
  565.     dc.b    %01101100
  566.     dc.b    %01100110
  567.     dc.b    %01100011
  568.     dc.b    %00000000
  569. ; 'L'
  570.     dc.b    %01100000
  571.     dc.b    %01100000
  572.     dc.b    %01100000
  573.     dc.b    %01100000
  574.     dc.b    %01100000
  575.     dc.b    %00000000
  576.     dc.b    %01111111
  577.     dc.b    %00000000
  578. ; 'M'
  579.     dc.b    %01100011
  580.     dc.b    %01110111
  581.     dc.b    %01101011
  582.     dc.b    %01100011
  583.     dc.b    %01100011
  584.     dc.b    %01100011
  585.     dc.b    %01100011
  586.     dc.b    %00000000
  587. ; 'N'
  588.     dc.b    %01111111
  589.     dc.b    %00000011
  590.     dc.b    %01100011
  591.     dc.b    %01100011
  592.     dc.b    %01100011
  593.     dc.b    %01100011
  594.     dc.b    %01100011
  595.     dc.b    %00000000
  596. ; 'O'
  597.     dc.b    %01111111
  598.     dc.b    %00000011
  599.     dc.b    %01100011
  600.     dc.b    %01100011
  601.     dc.b    %01100011
  602.     dc.b    %01100011
  603.     dc.b    %01111111
  604.     dc.b    %00000000
  605. ; 'P'
  606.     dc.b    %01111111
  607.     dc.b    %00000011
  608.     dc.b    %01100011
  609.     dc.b    %01111111
  610.     dc.b    %01100000
  611.     dc.b    %01100000
  612.     dc.b    %01100000
  613.     dc.b    %00000000
  614. ; 'Q'
  615.     dc.b    %01111111
  616.     dc.b    %00000011
  617.     dc.b    %01100011
  618.     dc.b    %01100011
  619.     dc.b    %01100011
  620.     dc.b    %01100111
  621.     dc.b    %01111111
  622.     dc.b    %00000000
  623. ; 'R'
  624.     dc.b    %01111111
  625.     dc.b    %00000011
  626.     dc.b    %01100011
  627.     dc.b    %01111100
  628.     dc.b    %01100011
  629.     dc.b    %01100011
  630.     dc.b    %01100011
  631.     dc.b    %00000000
  632. ; 'S'
  633.     dc.b    %01111111
  634.     dc.b    %00000000
  635.     dc.b    %01100000
  636.     dc.b    %01111111
  637.     dc.b    %00000011
  638.     dc.b    %00000011
  639.     dc.b    %01111111
  640.     dc.b    %00000000
  641. ; 'T'
  642.     dc.b    %01111111
  643.     dc.b    %00000000
  644.     dc.b    %00000011
  645.     dc.b    %00000011
  646.     dc.b    %00000011
  647.     dc.b    %00000011
  648.     dc.b    %00000011
  649.     dc.b    %00000000
  650. ; 'U'
  651.     dc.b    %01100011
  652.     dc.b    %01100011
  653.     dc.b    %01100011
  654.     dc.b    %01100011
  655.     dc.b    %01100011
  656.     dc.b    %00000011
  657.     dc.b    %01111111
  658.     dc.b    %00000000
  659. ; 'V'
  660.     dc.b    %01100011
  661.     dc.b    %01100011
  662.     dc.b    %01100011
  663.     dc.b    %01100011
  664.     dc.b    %01100011
  665.     dc.b    %00110110
  666.     dc.b    %00011100
  667.     dc.b    %00000000
  668. ; 'W'
  669.     dc.b    %01100011
  670.     dc.b    %01100011
  671.     dc.b    %01100011
  672.     dc.b    %01100011
  673.     dc.b    %01101011
  674.     dc.b    %01110111
  675.     dc.b    %01100011
  676.     dc.b    %00000000
  677. ; 'X'
  678.     dc.b    %01100011
  679.     dc.b    %01100011
  680.     dc.b    %00110110
  681.     dc.b    %00001000
  682.     dc.b    %00110110
  683.     dc.b    %01100011
  684.     dc.b    %01100011
  685.     dc.b    %00000000
  686. ; 'Y'
  687.     dc.b    %01100011
  688.     dc.b    %01100011
  689.     dc.b    %00000011
  690.     dc.b    %01111111
  691.     dc.b    %00000011
  692.     dc.b    %00000011
  693.     dc.b    %01111111
  694.     dc.b    %00000000
  695. ; 'Z'
  696.     dc.b    %01111111
  697.     dc.b    %00000000
  698.     dc.b    %00000110
  699.     dc.b    %00001100
  700.     dc.b    %00011000
  701.     dc.b    %00110000
  702.     dc.b    %01111111
  703.     dc.b    %00000000
  704. ;
  705. ; mancano i caratteri in minuscolo... se avete la pazienza di disegnarli, fate
  706. ; pure! Oppure potete fare disegnini da comporre insieme...
  707. ;
  708.  
  709.     SECTION    MIOPLANE,BSS_C    ; Le SECTION BSS devono essere fatte di
  710.                 ; soli ZERI!!! si usa il DS.b per definire
  711.                 ; quanti zeri contenga la section.
  712.  
  713. BITPLANE:
  714.     ds.b    40*256    ; un bitplane lowres 320x256
  715.  
  716.     end
  717.  
  718. Questo listato e' uguale a Lezione6c.s, ma il font e' "FATTO A MANO", infatti
  719. anziche' caricarlo e' nel listato in forma di dc.b in binario
  720.  
  721.         ;12345678
  722. ; "A"
  723.     dc.b    %01111111    ;1
  724.     dc.b    %00000011    ;2
  725.     dc.b    %01100011    ;3
  726.     dc.b    %01111111    ;4
  727.     dc.b    %01100011    ;5
  728.     dc.b    %01100011    ;6
  729.     dc.b    %01100011    ;7
  730.     dc.b    %00000000    ;8
  731.  
  732. Questa per esempio e' la "A". Attenzione a non usare caratteri minuscoli nel
  733. testo, perche' non sono nel font, in quanto chi lo ha fatto si deve essere
  734. stancato alla "Z" maiuscola. In realta' non c'erano nemmeno molti simboli
  735. come "*;<>=" e li ho aggiunti io. Ora apparira' piu' chiara anche come e'
  736. fatto il font! E intuirete che per fare un font di 16x16 dovete fare cosi':
  737.  
  738.  
  739.         ;1234567890123456
  740. ; "A"
  741.     dc.w    %0000111111111100    ;1
  742.     dc.w    %0011111111111111    ;2
  743.     dc.w    %0011110000001111    ;3
  744.     dc.w    %0011110000001111    ;4
  745.     dc.w    %0011110000001111    ;5
  746.     dc.w    %0011110000001111    ;6
  747.     dc.w    %0011111111111111    ;7
  748.     dc.w    %0011111111111111    ;8
  749.     dc.w    %0011110000001111    ;9
  750.     dc.w    %0011110000001111    ;10
  751.     dc.w    %0011110000001111    ;11
  752.     dc.w    %0011110000001111    ;12
  753.     dc.w    %0011110000001111    ;13
  754.     dc.w    %0011110000001111    ;14
  755.     dc.w    %0000000000000000    ;15
  756.     dc.w    %0000000000000000    ;16
  757.  
  758. Ma conviene disegnarlo e convertirlo in RAW!
  759.  
  760. In questo listato vi consiglio di modificare il FONT, aggiungendo disegnini e
  761. simboli strani. Potreste farvi il FONT personale!
  762.  
  763.